package com.yixun.qfbao.api.service;

import com.yixun.qfbao.apidto.*;
import com.yixun.qfbao.model.DevPremisesExport;

import java.util.List;

/**
 * @author guifang.weng
 * @create 2017-11-27 15:15
 **/
public interface DataCenterService {
    /**
     * 经纪人排行
     *
     * @param reqDto
     * @return
     * @throws Exception
     */
    GetAgentRankPageResDto getAgentRankPage(GetAgentRankPageReqDto reqDto);

    /**
     * 经纪人排行导出
     * @param reqDto
     * @return
     * @throws Exception
     */
    GetAgentRankExportResDto getAgentRankExport(GetAgentRankExportReqDto reqDto);

    /**
     * 客户转化表
     * @param reqDto
     * @return
     * @throws Exception
     */
    GetCustomerConversionPageResDto getCustomerConversionPage(GetCustomerConversionPageReqDto reqDto);

    /**
     * 客户转化表导出
     * @param reqDto
     * @return
     * @throws Exception
     */
    GetCustomerConversionExportResDto getCustomerConversionExport(GetCustomerConversionExportReqDto reqDto);

    /**
     * 效果分析表
     * @param reqDto
     * @return
     * @throws Exception
     */
    GetEffectPageResDto getEffectPage(GetEffectPageReqDto reqDto);

    /**
     *  效果分析表导出
     * @param reqDto
     * @return
     * @throws Exception
     */
    GetEffectExportResDto getEffectExport(GetEffectExportReqDto reqDto);

    /**
     * 门店业绩表
     * @param reqDto
     * @return
     */
    GetStoreReportPageResDto getStoreReport(GetStoreReportPageReqDto reqDto);

    /**
     * 组别业绩表
     * @param reqDto
     * @return
     */
    GetGroupReportPageResDto getGroupReportPage(GetGroupReportPageReqDto reqDto);

    /**
     * 经纪人业绩表
     * @param reqDto
     * @return
     */
    GetAgentReportPageResDto getAgentReport(GetAgentReportPageReqDto reqDto);

    /**
     * 楼盘销售业绩
     * @param reqDto
     * @return
     */
    HouseSalePerformancePageListResDto houseSalePerformancePageList(HouseSalePerformancePageListReqDto reqDto);

    /**
     * 机构销售业绩
     * @param reqDto
     * @return
     */
    OrganSalePerformancePageListResDto organSalePerformancePageList(OrganSalePerformancePageListReqDto reqDto);

    /**
     * boss看板
     * @param reqDto
     * @return
     */
    BossBordResDto bossBord(BossBordReqDto reqDto);

    /**
     * 查询推荐报备业务数据
     * @param reqDto
     * @return
     */
    GetDevPremisesExportResDto getDevPremises(GetDevPremisesExportReqDto reqDto);

    List<DevPremisesExport> exportDevPremises(GetDevPremisesExportReqDto dto);

    GetVisitStateResDto getVisitStateList (GetVisitStateReqDto params) throws Exception;

    List<List<Long>> getStaffIdsByPrincipal(Long userId);

    void addDeptByOrg(Long merchantId,List<Long> deptIds,Long devId);

    void addDeptByStore(Long parentId,List<Long> deptIds);
}
